草庐IT

C++::Boost::Regex 迭代子匹配

全部标签

JavaScript 匹配 RegExp 后的子串

我有一个看起来像这样的字符串something30-mr200我想在mr之后获取所有内容(基本上是#后跟mr)*总是会有-mr任何帮助将不胜感激。 最佳答案 你可以像Bart给你的那样使用正则表达式,但我建议使用匹配而不是替换,因为万一找不到匹配,使用替换时结果是整个字符串,而使用匹配时结果为null,这似乎更合乎逻辑。(虽然一般)。像这样的东西就可以了:functiongetNumber(string){varmatches=string.match(/-mr([0-9]+)/);returnmatches[1];}console

匹配两个字符串的Javascript正则表达式

我不太了解正则表达式,我想创建一个匹配两个字符串的正则表达式。我知道对于一个字符串,代码是.match(/something/)如果匹配两个字符串,它是.match(/something|someotherthing/)如何编写仅当在文本中找到两个字符串时才匹配的字符串,例如“googlemicrosoft” 最佳答案 要使用单个正则表达式来完成此操作,您需要考虑它们可能以任一顺序出现的事实。(.*匹配两个子字符串之间的任何字符):/google.*microsoft|microsoft.*google/注意:如果你想做2个以上的子

javascript - RegEx 从 CSS 背景样式中提取 URL

我有一个这种形式的字符串:url("http://www.example.com/imgs/backgrounds/bg80.jpg")repeatscroll10%0%transparent这是来自某个元素的CSS样式,该元素目前在页面上不可见。我需要做的是预加载该背景图片,但为此我需要它的URL,并且我正在尝试编写一个正则表达式来找到它。我知道http://www.example.com/imgs/backgrounds/部分保持不变,唯一改变的是图像名称本身,它可以以结尾。jpg或.png.这是一次尝试:(http:\/\/www.example.com\/imgs\/backg

用于匹配类似 Twitter 的主题标签的 Javascript 正则表达式

我需要一些帮助来弄清楚用于识别“主题标签”的JS正则表达式,它们应该匹配以下所有内容:常用的Twitter风格标签:#foobar带有前面文本的主题标签:abc123#xyz456标签中有空格,表示为:#[foobar](即[]作为标签的分隔符)对于1和2,我使用了以下形式:varall_re=/\S*#\S+/gi;我似乎无法弄清楚如何将它扩展到3。我不擅长正则表达式,请帮忙吗?谢谢! 最佳答案 因此它必须匹配所有非空格字符或(包括)[和]之间的任何字符:\S*#(?:\[[^\]]+\]|\S+)解释:\S*#anynumber

javascript - 匹配最多 2 位小数的数字的正则表达式

我正在寻找一个正则表达式,该正则表达式会将数值与用户定义的小数位数进行匹配。目前我有/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/这将允许与输入一样多的位置,但我有时也希望允许2个用于货币或4个或更多用于其他输入。我正在构建的功能是varisNumeric=function(val,decimals){//decimalsisnotusedyetvarobjRegExp=/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;returnobjRegExp.test(val);};

javascript - 为什么\w 只匹配 javascript 正则表达式中的英文单词?

我正在尝试使用javascript代码在某些文本中查找URL。问题是,我使用的正则表达式使用\w来匹配URL中的字母和数字,但它不匹配非英语字符(在我的例子中是希伯来字母)。那么我可以用什么代替\w来匹配所有语言的所有字母呢? 最佳答案 因为\w只匹配ASCII字符48-57('0'-'9')、67-90('A'-'Z')和97-122('a'-'z').希伯来语字符和其他特殊的外语字符(例如变音符-o或波浪号-n)不在该范围内。与其匹配外语字符(外语字符太多,在许多不同的ASCII范围内),不如查找描述单词的字符-空格、引号和其他

javascript - 切换纵向-横向-纵向后丢失媒体查询匹配

我真的不知道该怎么办,我有一个galaxyTab2、7英寸平板电脑并在Android4.1.1中使用chrome作为浏览器(v26.0.1410.58)。我正在以纵向模式加载网络应用程序并且媒体查询匹配得很好,我将它切换到横向模式,一切都很好,但是当我将它切换回纵向模式时,浏览器只是不应用任何样式完全没有,并使用连接到PC的平板电脑USB调试应用程序,我可以看到chrome不再找到与任何媒体查询的匹配项。我正在应用的媒体查询是:(device-width:600px)and(max-device-height:1024px)and(max-width:600px)and(min-dev

Javascript (ES6) 可迭代流

是否有使用ES6生成器使流可迭代的模式?请参阅下面的“MakeStreamIterable”。import{createReadStream}from'fs'letfileName='largeFile.txt'letreadStream=createReadStream(fileName,{encoding:'utf8',bufferSize:1024})letmyIterableAsyncStream=MakeStreamIterable(readStream)for(letdataofmyIterableAsyncStream){letstr=data.toString('utf

javascript - Casperjs 使用 casper.each 迭代链接列表

我正在尝试使用Casperjs从页面获取链接列表,然后打开每个链接,并将来自这些页面的特定类型的数据添加到数组对象。我遇到的问题是对每个列表项执行的循环。首先,我从原始页面得到一个listOfLinks。这部分有效并使用长度我可以检查这个列表是否已填充。但是,使用如下所示的循环语句this.each,没有任何控制台语句出现,casperjs似乎跳过了这个block。用标准的for循环替换this.each,执行仅通过第一个链接的一部分,因为语句“Creatingnewarrayinobjectforx.html”出现一次,然后代码停止执行。使用IIFE不会改变这一点。编辑:在详细Deb

javascript - 根据子对象的特定键值按排序顺序迭代 JavaScript 对象

简短版本:我正在寻找Perl的JavaScript等价物formy$key(sort{$hash{$a}{foo}cmp$hash{$b}{foo}}keys%hash){#dosomethingwith$key}更多细节:我有一个JSON对象,它由一堆其他具有相同属性的JSON对象组成,就像Perl中的哈希散列:例如:varpeopleobj={"0291":{"Forename":"Jeremy","Surname":"Dyson"},"0398":{"Forename":"Billy","Surname":"Bunter"},"6714":{"Forename":"Harry",